package com.hua.designpattern.creational.simplefactory;

/**
 * 
 * @author joshua
 * 
 *         <pre>
 *  
 * 优点
 * 1、将创建实例的工作与使用实例的工作分开
 * 2、把初始化实例时的工作放到工厂里进行，使代码更容易维护。
 * 3、使得修改代码时不会引起太大的变动，良好的扩展性。
 * 
 * 缺点
 * 1.破坏开闭原则，扩展也会影响代码
 * 
 *         </pre>
 *
 */

public class TestSimpleFactory {
	public static void main(String[] args) {
		Drivable bike = DrivableFactory.getBean("bicycle");
		bike.drive();
		bike.stop();

		Drivable train = DrivableFactory.getBean("Train");
		train.drive();
		train.stop();

		Drivable automobile = DrivableFactory.getBean("automobile");
		automobile.drive();
		automobile.stop();

		Drivable plane = DrivableFactory.getBean("Plane");
		plane.drive();
		plane.stop();
	}
}
